home *** CD-ROM | disk | FTP | other *** search
- /* Benchmark by Dan Allen 10/2/1986, Apple Computer */
-
- /*
- *
- * NAME
- * sieve - prime number benchmark
- *
- * SYNOPSIS
- * sieve
- *
- * DESCRIPTION
- * sieve generates prime numbers via the method after Erathosthenes.
- * It is the standard Byte magazine benchmark.
- *
- * AUTHOR
- * (a) Tim Field, Byte Magazine, November 1985, p.275f.
- * (B) Dan Allen & Apple Computer, Inc. 1985,1986.
- *
- */
-
- #include "defns.h"
-
- #define TRUE 1
- #define FALSE 0
- #define SIZE 8190
-
- main()
- {
- char *flags;
- int iter, count;
- long thetime;
-
- flags = (char *) malloc(SIZE+1);
- thetime = clock();
- for (iter = 1; iter <= 10; iter++)
- {
- count = sieve(flags);
- }
- thetime = clock() - thetime;
- printf("%d primes found %d times in %d/%d seconds\n",
- count, 10, thetime, CLK_TCK);
- }
-
- sieve(flags)
- char *flags;
- {
- int i,prime,k,count;
-
- count = 0;
- for (i=0; i <= SIZE; i++)
- flags[i] = (char) TRUE;
- for (i=0; i <= SIZE; i++)
- {
- if (flags[i])
- {
- prime = i + i + 3;
- for (k = i + prime; k <= SIZE; k += prime)
- flags[k] = FALSE;
- count ++;
- }
- }
- return count;
- }
-